﻿using Microsoft.AspNetCore.Mvc.Filters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace WebAPI_Demo.Filter
{
    /// <summary>
    /// 授权过滤器
    /// </summary>
    // 过滤器是一个类 类名
    // 类名不是强制要求 命名规范 过滤器的功能+过滤器类型
    // Attribute 是否有属性的功能 需要在控制器或方法上面添加的话 
    // 过滤器类型接口 
    public class AuthorizeFilter : Attribute, IAuthorizationFilter //有Attribute类才可以在控制器或方法上面使用该过滤器
    {
        /// <summary>
        /// 请求验证，当前验证部分不要抛出异常，ExceptionFilter不会处理
        /// </summary>
        /// <param name="context"></param>
        public void OnAuthorization(AuthorizationFilterContext context)
        {
            //身份认证逻辑 是否登录 身份权限足够调用接口
            //这里可以做复杂的权限控制操作
            //if (context.HttpContext.User.Identity.Name != "1") //简单的做一个示范
            //{
            // //未通过验证则跳转到无权限提示页
            // RedirectToActionResult content = new RedirectToActionResult("NoAuth", "Exception", null);
            // context.Result = content;
            //
        }
    }
}
